<?php

include_once 'model/Cargo.php';
include_once 'model/Agenda.php';
include_once 'model/Funcionario.php';
include_once 'config/CadastroRepetido.php';


class Cagenda {
    
    function cadastraragenda($id, $data) {
  
                    $idprofissional = $id;
                    $obj = new Funcionario();
                    $consulta = $obj->find($id);
                    $nomeprofissional = $consulta->fun_nome;
                    
                    $agenda = new Cargo();
                    $idcargo = $agenda->buscacargo($id);
                    $atender[1] = date("8:00:00", time());
                    $atender[2] = date("8:30:00", time());
                    $atender[3] = date("9:00:00", time());
                    $atender[4] = date("9:30:00", time());
                    $atender[5] = date("10:00:00", time());
                    $atender[6] = date("10:30:00", time());
                    $atender[7] = date("13:00:00", time());
                    $atender[8] = date("13:30:00", time());
                    $atender[9] = date("14:00:00", time());
                    $atender[10] = date("14:30:00", time());
                    $atender[11] = date("15:00:00", time());
                    $atender[12] = date("15:30:00", time());
                    $atender[13] = date("16:00:00", time());
                    $atender[14] = date("16:30:00", time());
                    
                    date_default_timezone_set("America/Campo_Grande");
                    if(empty($data)){//navegaçao entre os meses

                        $dia = date('d');

                        $month =ltrim(date('m'),"0");

                        $ano = date('Y');

                    }else{

                        $data = explode('/',$data);//nova data

                        $dia = $data[0];

                        $month = $data[1];

                        $ano = $data[2];

                    }

                    if($month==1){//mês anterior se janeiro mudar valor

                        $mes_ant = 12;

                        $ano_ant = $ano - 1;

                    }else{

                        $mes_ant = $month - 1;

                        $ano_ant = $ano;

                    }
                    if($month==12){//proximo mês se dezembro tem que mudar

                        $mes_prox = 1;

                        $ano_prox = $ano + 1;

                    }else{

                        $mes_prox = $month + 1;

                        $ano_prox = $ano;

                    }



                    $hoje = date('j');//função importante pego o dia corrente

                    switch($month){/*notem duas variaveis para o switch para identificar dia e limitar numero de dias*/

                        case 1: $mes = "JANEIRO";

                                $n = 31;

                        break;

                        case 2: $mes = "FEVEREIRO";// todo ano bixesto fev tem 29 dias

                                $bi = $ano % 4;//anos multiplos de 4 são bixestos

                                if($bi == 0){

                                    $n = 29;

                                }else{

                                    $n = 28;

                                }

                        break;

                        case 3: $mes = "MARÇO";

                                $n = 31;

                        break;

                        case 4: $mes = "ABRIL";

                                $n = 30;

                        break;

                        case 5: $mes = "MAIO";

                                $n = 31;

                        break;

                        case 6: $mes = "JUNHO";

                                $n = 30;

                        break;

                        case 7: $mes = "JULHO";

                                $n = 31;

                        break;

                        case 8: $mes = "AGOSTO";

                                $n = 31;

                        break;

                        case 9: $mes = "SETEMBRO";

                                $n = 30;

                        break;

                        case 10: $mes = "OUTUBRO";

                                $n = 31;

                        break;

                        case 11: $mes = "NOVEMBRO";

                                $n = 30;

                        break;

                        case 12: $mes = "DEZEMBRO";

                                $n = 31;

                        break;

                    }



                    $pdianu = mktime(0,0,0,$month,1,$ano);//primeiros dias do mes

                    $dialet = date('D', $pdianu);//escolhe pelo dia da semana

                    switch($dialet){//verifica que dia cai

                        case "Sun": $branco = 0; break;

                        case "Mon": $branco = 1; break;

                        case "Tue": $branco = 2; break;

                        case "Wed": $branco = 3; break;

                        case "Thu": $branco = 4; break;

                        case "Fri": $branco = 5; break;

                        case "Sat": $branco = 6; break;

                    }            
                    $primeiro = 01;
        
        include_once 'view/CadastrarAgenda.php';
        
    }
    
    function selecionaragenda() {
        $cargo = new Cargo();
        $ver = $cargo->mostrarmenu();
        
        include_once 'view/SelecionarCargo.php';
        
    }
    
    function inseriragenda($dados) {
        
        $repetido = new CadastroRepetido();
        $repetido->setCampoBanco("usu_sus");
        $repetido->setCampoBuscado($dados['sus']);
        $repetido->setTabela("usuario");
        $resultadobusca = $repetido->verificacadastrorepetido();
        if($resultadobusca < 1){
        $error = "<p>Usuário Invalido, tente novamente.</p>";
        $url = "index.php?pg=EspecialidadeAgenda&id=".$dados['idprofissional'];
        include_once 'view/Aviso.php';
        exit();
        }
        
        $inserir = new Agenda();
        $inserir->setTipo($dados['tipo']);
        $inserir->setData($dados['data']);
        
        $aux = new Usuario();
        $valor = $aux->buscaid($dados['sus']);
        
        $inserir->setIdUsuario($valor->id);
        $inserir->setHora($dados['horario']);
        $inserir->setPrevisao($dados['observacao']);
        $inserir->setIdFuncionario($dados['idprofissional']);
        $inserir->setIdCargo($dados['idcargo']);
        $inserir->setStatus("A");
        $inserir->setPrevisao($dados['observacao']);

        
        $verifica = new Cagenda();
        $verificar = $verifica->consultaagenda($inserir->getData(), $inserir->getHora(), $inserir->getIdFuncionario());
        if($verificar[0] == TRUE AND $verificar[3] == "A"){
        $error = "<p>Horario já Cadastrado</p>";
        $url = "index.php?pg=EspecialidadeAgenda&id=".$inserir->getIdFuncionario();
        include_once 'view/Aviso.php';
        exit();
        }
        

            
            
        
      
        
        $inserir->insert();
        $error = "<p>Cadastro Efetuado com Sucesso</p>";
        $url = "index.php?pg=EspecialidadeAgenda&id=".$inserir->getIdFuncionario();
        include_once 'view/Aviso.php';
        exit();
        
        
    }
    
    function consultaagenda($data, $hora, $profissional) {
        $resultado = new Agenda();
        $total = $resultado->verificaagenda($data, $hora, $profissional);
        $contar = count($total);
        if($contar > 0){
            $resul = TRUE;
            $idagenda = $total[0]->id;
            $idusuario = $total[0]->age_usu_id;
            $situacaostatus = $total[0]->age_status;
            return array ($resul, $idusuario, $idagenda, $situacaostatus);
        }else{
        $resul = FALSE;
        $idusuario = NULL;
        return array ($resul, $idusuario);
        }
        
    }
    
    function selecionarespecialista() {
        
        $funcionario = new Funcionario();
        $resul = $funcionario->listaespecialista();
        
        include_once 'view/SelecionaEspecialista.php';
        
    }
    
    function listaragenda($id, $data) {
        
                    $cargoaux = new Cargo();
                    $consulta = $cargoaux->buscanivel($_SESSION['cargo']);
                   
                    
                    // bloco que verifica se não e epecialista em saúde
                    if($consulta[0]->car_nivel != 3){
                        $error = "<p>Você não tem acesso a essa função</p>";
                        $url = "index.php";
                        include_once 'view/Aviso.php';
                        exit();
                        
                    }
                    
                    
                    $idprofissional = $id;
                    $obj = new Funcionario();
                    $consulta = $obj->find($id);
                    $nomeprofissional = $consulta->fun_nome;
                    
                    date_default_timezone_set("America/Campo_Grande");
                    if(empty($data)){//navegaçao entre os meses

                        $dia = date('d');

                        $month =ltrim(date('m'),"0");

                        $ano = date('Y');

                    }else{

                        $data = explode('/',$data);//nova data

                        $dia = $data[0];

                        $month = $data[1];

                        $ano = $data[2];

                    }

                    if($month==1){//mês anterior se janeiro mudar valor

                        $mes_ant = 12;

                        $ano_ant = $ano - 1;

                    }else{

                        $mes_ant = $month - 1;

                        $ano_ant = $ano;

                    }
                    if($month==12){//proximo mês se dezembro tem que mudar

                        $mes_prox = 1;

                        $ano_prox = $ano + 1;

                    }else{

                        $mes_prox = $month + 1;

                        $ano_prox = $ano;

                    }



                    $hoje = date('j');//função importante pego o dia corrente

                    switch($month){/*notem duas variaveis para o switch para identificar dia e limitar numero de dias*/

                        case 1: $mes = "JANEIRO";

                                $n = 31;

                        break;

                        case 2: $mes = "FEVEREIRO";// todo ano bixesto fev tem 29 dias

                                $bi = $ano % 4;//anos multiplos de 4 são bixestos

                                if($bi == 0){

                                    $n = 29;

                                }else{

                                    $n = 28;

                                }

                        break;

                        case 3: $mes = "MARÇO";

                                $n = 31;

                        break;

                        case 4: $mes = "ABRIL";

                                $n = 30;

                        break;

                        case 5: $mes = "MAIO";

                                $n = 31;

                        break;

                        case 6: $mes = "JUNHO";

                                $n = 30;

                        break;

                        case 7: $mes = "JULHO";

                                $n = 31;

                        break;

                        case 8: $mes = "AGOSTO";

                                $n = 31;

                        break;

                        case 9: $mes = "SETEMBRO";

                                $n = 30;

                        break;

                        case 10: $mes = "OUTUBRO";

                                $n = 31;

                        break;

                        case 11: $mes = "NOVEMBRO";

                                $n = 30;

                        break;

                        case 12: $mes = "DEZEMBRO";

                                $n = 31;

                        break;

                    }



                    $pdianu = mktime(0,0,0,$month,1,$ano);//primeiros dias do mes

                    $dialet = date('D', $pdianu);//escolhe pelo dia da semana

                    switch($dialet){//verifica que dia cai

                        case "Sun": $branco = 0; break;

                        case "Mon": $branco = 1; break;

                        case "Tue": $branco = 2; break;

                        case "Wed": $branco = 3; break;

                        case "Thu": $branco = 4; break;

                        case "Fri": $branco = 5; break;

                        case "Sat": $branco = 6; break;

                    }            
                    $primeiro = 01;
                    
                    $databanco = date('y-m-d', mktime(0,0,0, $month, $dia, $ano));
                    
                    $agenda = new Agenda();
                    $listando = $agenda->listaagenda($databanco);
                    $usuario = new Usuario();
                    $resultado = $usuario->find($listando[0]->age_usu_id);
                    
        
        
        
        include_once 'view/ListarAgenda.php';
        
    }
    
    function statusagenda($id) {
        $agenda = new Agenda();
        $consulta = $agenda->find($id);
        $usuario = new Usuario();
        $resultado = $usuario->find($consulta->age_usu_id);
        
        switch ($consulta->age_status) {
            case "A":
                $status = "Aguardando Atendimento";

                break;
            
                case "C":
                $status = "Cancelado";

                break;

            default:
                $status = "Erro";
                break;
        }
       
        
        include_once 'view/EditarAgenda.php';
        
    }
    
    function atualizaragenda($dados) {
        $agenda = new Agenda();
        $agenda->setStatus($dados['status']);
        $agenda->update($dados['id']);
        $error = "<p>Agenda atualizada com Sucesso.</p>";
        $url = "index.php?pg=SelecionarAgenda";
        include_once 'view/Aviso.php';
        exit();
        
    }
    

}
